package testjeu;


/**
 * Classe permettant de mettre en relation des coordonnées absolues (x,y) et les cases (col, lig)
 * @author YoTsumi
 */
public class cases {
    
  
    
    /**
     * Retourne la coordonnée absolue X d'une colonne
     * @param numCase   Le numéro de la colone
     * @return  X
     */
    public static int colToPxl(int numCase) {        
        return 280+40*(numCase-1);
    }
    
    /**
     * Retourne la coordonnée absolue Y d'une ligne
     * @param numCase   Le numéro de la ligne
     * @return  Y
     */
    public static int ligToPxl(int numCase) {
        return 57+40*(numCase-1);
    }
    
    
    
    /**
     * Retourne le numéro de la colone dans laquelle se situe la coordonnée absolue X
     * @param pxlX  Le pixel X
     * @return      La colone dans laquelle X se situe
     */
    public static int pxlToCol(int pxlX) {
        return (pxlX-240)/40;
    }
    /**
     * Retourne le numéro de la ligne dans laquelle se situe la coordonnée absolue Y
     * @param pxlY  Le pixel Y
     * @return      La ligne dans laquelle Y se situe
     */  
    public static int pxlToLig(int pxlY) {
        return (pxlY-17)/40;
    }
    
    
    
    /**
     * Retourne la coordonnée absolue X du début de la case pointée
     * @param pxlX  La coordonnée X pointée
     * @return      La coordonnée absolue X de la case pointée
     */
    public static int debutCaseX(int pxlX) {
        return pxlX-((pxlX-280)%40);
    }
    /**
     * Retourne la coordonnée absolue Y du début de la case pointée
     * @param pxlY  La coordonnée Y pointée
     * @return      La coordonnée absolue Y de la case pointée
     */
    public static int debutCaseY(int pxlY) {
        return pxlY-((pxlY-57)%40);
    }
    
    
    public static boolean milieuCol(int pxlX) {
        return pxlX==pxlX-((pxlX-280)%40)+20 /*|| pxlX==pxlX-((pxlX-280)%40)+19 || pxlX==pxlX-((pxlX-280)%40)+21*/;
    }
    
    public static boolean milieuLig(int pxlY) {
        return pxlY==pxlY-((pxlY-57)%40)+20 /*|| pxlY==pxlY-((pxlY-57)%40)+19 || pxlY==pxlY-((pxlY-57)%40)+21*/;
    }
    
    // ----------------------------- ---------------------- //
    
    private int[] coord=new int[2];
    
    /**
     * Petit système de gestion de coordonnée : Initialise un Point(x,y) ou (col,lig)
     * @param col
     * @param lig
     */
    public cases(int col, int lig) {
        coord[0]=col;
        coord[1]=lig;
    }
    
    /**
     * Retourne la première composante du point (x ou col)
     * @return int
     */
    public int X() {
        return coord[0];
    }
    
    /**
     * Retourne la seconde composante du point (y ou lig)
     * @return int
     */
    public int Y() {
        return coord[1];
    }
    
}
